from datetime import timedelta
from typing import Any, Union
from .schemas import role_schema
from sqlalchemy.orm import Session
from fastapi import APIRouter, Depends, Query

from api.common import deps
from api.utils import response_code
from api.common import logger
from .crud import curd_role


router = APIRouter()

# 添加角色
@router.post('/add/addrole',summary="添加角色")
async def add_role(
    # role_info 是参数
    role_info:role_schema.RoleCreate,
    # 指定数据库连接
    db:Session=Depends(deps.get_db),
):
    print(role_info)
    # logger.info(f"添加角色->用户id：,角色名{role_info.name}")
    # 接收参数 role_info进行添加 role_info
    curd_role.create(db=db,obj_in=role_info)
    return response_code.resp_200(message='分类成功')
# 获取角色列表
@router.get("/add/query", summary="查询角色表")
async def query_category(
        # role_info 是参数
        page:int= Query(1,ge=1,title="当前页"),
        page_size:int=Query(10,le=50,title="页码长度"),
        # 指定数据库连接
        db: Session = Depends(deps.get_db),
):
    response_result = curd_role.query_all(db, page=page,page_size=page_size)
    return response_code.resp_200(data=response_result)
# 添加资源表
# @router.post('/add/response',summary="添加角色资源")
# async def add_role(
#     # role_info 是参数
#     role_info:role_schema.RoleResourceCreate,
#     # 指定数据库连接
#     db:Session=Depends(deps.get_db),):
#     print(role_info)
#     # logger.info(f"添加角色->用户id：,角色名{role_info.rid}")
#     # 接收参数 role_info进行添加 role_info
#     curd_role.create_zi(db=db,obj_in=role_info)
#     return response_code.resp_200(message='添加角色资源表成功')





@router.post('/add/response',summary="添加角色资源")
async def add_role(
    # role_info 是参数
    role_info:role_schema.Role_Resource,
    # 指定数据库连接
    db:Session=Depends(deps.get_db),):
    print(role_info)
    # logger.info(f"添加角色->用户id：,角色名{role_info.rid}")
    # 接收参数 role_info进行添加 role_info
    curd_role.create_zi(db=db,obj_in=role_info)
    return response_code.resp_200(message='添加角色资源表成功')

# 获取资源列表
@router.get("/add/response", summary="查询角色表")
async def query_category(
        # role_info 是参数
        page:int= Query(1,ge=1,title="当前页"),
        page_size:int=Query(10,le=50,title="页码长度"),
        # 指定数据库连接
        db: Session = Depends(deps.get_db),
):
    response_result = curd_role.query_all(db, page=page,page_size=page_size)
    return response_code.resp_200(data=response_result)


